#ifndef BASEMODEL_SERVER_REQUEST_H
#define BASEMODEL_SERVER_REQUEST_H

#include "../common.h"

// 最大载荷大小定义
#define MAX_PAYLOAD_SIZE 1024

// JSON-RPC消息载荷
typedef struct {
    jsonrpc_version_t jsonrpc;  // JSON-RPC协议版本，固定为JSONRPC_VERSION_2_0
    double id;                  // 请求ID，用于匹配请求和响应
    method_t method;            // 方法名，如"initialize"、"tools/list"等
    bool has_params;            // 是否包含参数
    char params[MAX_PAYLOAD_SIZE]; // 方法参数（JSON字符串格式）
} request_payload_t;

// MCP初始化请求消息
typedef struct {
    msg_type_t type;                // 消息类型，固定为MSG_TYPE_MCP
    session_id_t session_id;        // 会话ID
    request_payload_t payload;      // JSON-RPC载荷
} mcp_initialize_req_t;

// MCP工具列表请求消息
typedef struct {
    msg_type_t type;                // 消息类型，固定为MSG_TYPE_MCP
    session_id_t session_id;        // 会话ID
    request_payload_t payload;      // JSON-RPC载荷
} mcp_tools_list_req_t;

// MCP工具调用请求消息
typedef struct {
    msg_type_t type;            // 消息类型，固定为MSG_TYPE_MCP
    session_id_t session_id;    // 会话ID
    char payload[MAX_PAYLOAD_SIZE]; // JSON-RPC载荷（字符串格式）
} mcp_tools_call_req_t;

#endif // BASEMODEL_SERVER_REQUEST_H
